home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
B-Book Series
/
(k)b2.d64
/
newshop
< prev
next >
Wrap
Text File
|
2007-02-28
|
3KB
|
117 lines
0010 //UNCLE HANNIBAL'S NEW SHOP//
0020 //WRITTEN BY CHRIS BORGE//
0030 //FILE VERSION: NOV. 1981//
0040 //
0050 DIM NAME$ OF 30, ADRESS$ OF 20
0060 DIM TOWN$ OF 20, CODE$ OF 10
0070 DIM ARTICLE$(10) OF 20, PRICE(10)
0080 DIM TEXT$(10) OF 20, AMOUNT(10)
0090 DIM SPACES$ OF 39, QUANTITY(10)
0100 //*
0110 INITIALIZE
0120 REPEAT
0130 CUSTOMER
0140 GETORDER
0150 IF LINE<>0 THEN WRITEBILL
0160 INPUT "TYPE RETURN ": CODE$
0170 UNTIL THECOWSCOMEIN
0180 //*
0190 PROC INITIALIZE
0200 PRINT CHR$(147) //CLEAR SCREEN
0210 THECOWSCOMEIN:=FALSE
0220 I:=0; SPACES$(1:39):=""
0230 OPEN FILE 2,"OFFER",READ
0240 REPEAT
0250 I:=I+1
0260 READ FILE 2: ARTICLE$(I),PRICE(I)
0270 UNTIL EOF(2) //END-OF-FILE//
0280 MAX:=I
0290 CLOSE
0300 ENDPROC INITIALIZE
0310 //
0320 PROC CUSTOMER
0330 TOTAL:=0; LINE:=0
0340 //
0350 //STUD
0360 //
0370 ENDPROC CUSTOMER
0380 //
0390 PROC GETORDER
0400 MENU
0410 TAKEIN("ARTNO")
0420 WHILE NOT FINISHED DO
0430 LINE:=LINE+1
0440 TAKEIN("QUANTITY")
0450 INVOICELINE
0460 TAKEIN("ARTNO")
0470 ENDWHILE
0480 ENDPROC GETORDER
0490 //
0500 PROC INVOICELINE
0510 TEXT$(LINE):=ARTICLE$(ARTNO)
0520 AMOUNT(LINE):=PRICE(ARTNO)*QUANTITY(LINE)
0530 TOTAL:+AMOUNT(LINE)
0540 ENDPROC INVOICELINE
0550 //
0560 PROC WRITEBILL
0570 PRINT CHR$(147) //CLEAR SCREEN
0580 SCREEN(4,1)
0590 PRINT NAME$
0600 PRINT ADRESS$
0610 PRINT TOWN$,"á",CODE$
0620 PRINT
0630 PRINT "QUANT.",TAB(10),"ARTICLE",TAB(30),"AMOUNT"
0640 PRINT "----------------------------------------"
0650 FOR I:=1 TO LINE DO
0660 PRINT TAB(2),QUANTITY(I),
0670 PRINT TAB(9),TEXT$(I),
0680 PRINT TAB(32-LGTH(AMOUNT(I))),AMOUNT(I)
0690 ENDFOR I
0700 PRINT TAB(28),"--------"
0710 PRINT TAB(22),"TOTAL:",TAB(32-LGTH(TOTAL)),TOTAL
0720 ENDPROC WRITEBILL
0730 //
0740 PROC TAKEIN(KINDOF$)
0750 WINDOW(10,15)
0760 CASE KINDOF$ OF
0770 WHEN "ARTNO"
0780 REPEAT
0790 WINDOW(10,15)
0800 INPUT "> ": ARTNO
0810 OK:=(0<=ARTNO AND ARTNO<=MAX)
0820 UNTIL OK
0830 FINISHED:=(ARTNO=0)
0840 WHEN "QUANTITY"
0850 REPEAT
0860 SCREEN(ARTNO,20)
0870 INPUT QUANT
0880 UNTIL 0<QUANT AND INT(QUANT)=QUANT
0890 QUANTITY(LINE):=QUANT
0900 ENDCASE
0910 ENDPROC TAKEIN
0920 //
0930 PROC MENU
0940 PRINT CHR$(147)
0950 FOR I:=1 TO MAX DO
0960 PRINT I,". ",ARTICLE$(I)
0970 ENDFOR I
0980 PRINT "0. STOP"
0990 ENDPROC MENU
1000 //
1010 PROC WINDOW(X,Y)
1020 SCREEN(X,1)
1030 FOR LN:=1 TO Y-X+1 DO PRINT SPACES$
1040 SCREEN(X,1)
1050 ENDPROC WINDOW
1060 //
1070 PROC SCREEN(X,Y)
1080 PRINT CHR$(19),
1090 FOR LN:=1 TO X DO PRINT CHR$(17),
1100 FOR CH:=1 TO Y DO PRINT CHR$(29),
1110 ENDPROC SCREEN
1120 //
1130 FUNC LGTH(X)
1140 RETURN (X>=1)+(X>=10)+(X>=100)+(X>=1000)
1150 ENDFUNC LGTH
1160 //